Typically systems load balance by analyzing the current load on a system or machine and deciding where to place additional load based on the analysis. In systems that manage user sessions established between one or more servers and one or more clients where each user can access a user profile or account specific to that user, load balancing can be determined based in part on an analysis of the current load on each server. Load in this instance can comprise at least the amount of resources allocated to executing user sessions. When a user requests access to an application or otherwise initiates the creation of a user session, the system can responsively determine which server has the least amount of load, and then establish the user session on that server. Each time a user session is established, a number of computing resources are expended during the process of creating a user session and establishing a connection.
There exist systems that permit the reuse of user sessions by permitting users to reconnect to a previously established user session. These systems can respond to a user's request to initiate a user session by first determining whether there exists a previously established user session that can be re-established in lieu of initiating an entirely new session. In these systems, the chance that there exist multiple unused user sessions executing on a server at one time can be great. There is no guarantee that the user session will ever be re-established, therefore the user session could continue to use computing resources that could be used by an active user session. Thus, there exists a need to balance load in such a way that user session can be reused, but that also minimizes the number of unused, cached and inactive user sessions on a server.